﻿using System;

namespace HalconDotNet
{
	// Token: 0x02000091 RID: 145
	internal class HTupleElementsInt64 : HTupleElementsImplementation
	{
		// Token: 0x06001EF5 RID: 7925 RVA: 0x000B8273 File Offset: 0x000B6473
		internal HTupleElementsInt64(HTupleInt64 source, int index) : base(source, index)
		{
		}

		// Token: 0x06001EF6 RID: 7926 RVA: 0x000B827D File Offset: 0x000B647D
		internal HTupleElementsInt64(HTupleInt64 source, int[] indices) : base(source, indices)
		{
		}

		// Token: 0x06001EF7 RID: 7927 RVA: 0x000B8478 File Offset: 0x000B6678
		public override int[] getI()
		{
			if (this.indices == null)
			{
				return null;
			}
			int[] array = new int[this.indices.Length];
			for (int i = 0; i < this.indices.Length; i++)
			{
				array[i] = (int)this.source.LArr[this.indices[i]];
			}
			return array;
		}

		// Token: 0x06001EF8 RID: 7928 RVA: 0x000B84CC File Offset: 0x000B66CC
		public override void setI(int[] i)
		{
			if (!base.IsValidArrayForSetX(i))
			{
				return;
			}
			bool flag = i.Length == 1;
			for (int j = 0; j < this.indices.Length; j++)
			{
				this.source.LArr[this.indices[j]] = (long)i[flag ? 0 : j];
			}
		}

		// Token: 0x06001EF9 RID: 7929 RVA: 0x000B851C File Offset: 0x000B671C
		public override long[] getL()
		{
			if (this.indices == null)
			{
				return null;
			}
			long[] array = new long[this.indices.Length];
			for (int i = 0; i < this.indices.Length; i++)
			{
				array[i] = this.source.LArr[this.indices[i]];
			}
			return array;
		}

		// Token: 0x06001EFA RID: 7930 RVA: 0x000B856C File Offset: 0x000B676C
		public override void setL(long[] l)
		{
			if (!base.IsValidArrayForSetX(l))
			{
				return;
			}
			bool flag = l.Length == 1;
			for (int i = 0; i < this.indices.Length; i++)
			{
				this.source.LArr[this.indices[i]] = l[flag ? 0 : i];
			}
		}

		// Token: 0x06001EFB RID: 7931 RVA: 0x000B85BC File Offset: 0x000B67BC
		public override double[] getD()
		{
			if (this.indices == null)
			{
				return null;
			}
			double[] array = new double[this.indices.Length];
			for (int i = 0; i < this.indices.Length; i++)
			{
				array[i] = (double)this.source.LArr[this.indices[i]];
			}
			return array;
		}

		// Token: 0x06001EFC RID: 7932 RVA: 0x000B8610 File Offset: 0x000B6810
		public override object[] getO()
		{
			if (this.indices == null)
			{
				return null;
			}
			object[] array = new object[this.indices.Length];
			for (int i = 0; i < this.indices.Length; i++)
			{
				array[i] = this.source.LArr[this.indices[i]];
			}
			return array;
		}

		// Token: 0x06001EFD RID: 7933 RVA: 0x000B8665 File Offset: 0x000B6865
		public override HTupleType getType()
		{
			return HTupleType.LONG;
		}
	}
}
